package com.attendance.www.hr.entitys;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class DictionaryExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public DictionaryExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andDicClsIsNull() {
            addCriterion("dic_cls is null");
            return (Criteria) this;
        }

        public Criteria andDicClsIsNotNull() {
            addCriterion("dic_cls is not null");
            return (Criteria) this;
        }

        public Criteria andDicClsEqualTo(String value) {
            addCriterion("dic_cls =", value, "dicCls");
            return (Criteria) this;
        }

        public Criteria andDicClsNotEqualTo(String value) {
            addCriterion("dic_cls <>", value, "dicCls");
            return (Criteria) this;
        }

        public Criteria andDicClsGreaterThan(String value) {
            addCriterion("dic_cls >", value, "dicCls");
            return (Criteria) this;
        }

        public Criteria andDicClsGreaterThanOrEqualTo(String value) {
            addCriterion("dic_cls >=", value, "dicCls");
            return (Criteria) this;
        }

        public Criteria andDicClsLessThan(String value) {
            addCriterion("dic_cls <", value, "dicCls");
            return (Criteria) this;
        }

        public Criteria andDicClsLessThanOrEqualTo(String value) {
            addCriterion("dic_cls <=", value, "dicCls");
            return (Criteria) this;
        }

        public Criteria andDicClsLike(String value) {
            addCriterion("dic_cls like", value, "dicCls");
            return (Criteria) this;
        }

        public Criteria andDicClsNotLike(String value) {
            addCriterion("dic_cls not like", value, "dicCls");
            return (Criteria) this;
        }

        public Criteria andDicClsIn(List<String> values) {
            addCriterion("dic_cls in", values, "dicCls");
            return (Criteria) this;
        }

        public Criteria andDicClsNotIn(List<String> values) {
            addCriterion("dic_cls not in", values, "dicCls");
            return (Criteria) this;
        }

        public Criteria andDicClsBetween(String value1, String value2) {
            addCriterion("dic_cls between", value1, value2, "dicCls");
            return (Criteria) this;
        }

        public Criteria andDicClsNotBetween(String value1, String value2) {
            addCriterion("dic_cls not between", value1, value2, "dicCls");
            return (Criteria) this;
        }

        public Criteria andDicCdIsNull() {
            addCriterion("dic_cd is null");
            return (Criteria) this;
        }

        public Criteria andDicCdIsNotNull() {
            addCriterion("dic_cd is not null");
            return (Criteria) this;
        }

        public Criteria andDicCdEqualTo(String value) {
            addCriterion("dic_cd =", value, "dicCd");
            return (Criteria) this;
        }

        public Criteria andDicCdNotEqualTo(String value) {
            addCriterion("dic_cd <>", value, "dicCd");
            return (Criteria) this;
        }

        public Criteria andDicCdGreaterThan(String value) {
            addCriterion("dic_cd >", value, "dicCd");
            return (Criteria) this;
        }

        public Criteria andDicCdGreaterThanOrEqualTo(String value) {
            addCriterion("dic_cd >=", value, "dicCd");
            return (Criteria) this;
        }

        public Criteria andDicCdLessThan(String value) {
            addCriterion("dic_cd <", value, "dicCd");
            return (Criteria) this;
        }

        public Criteria andDicCdLessThanOrEqualTo(String value) {
            addCriterion("dic_cd <=", value, "dicCd");
            return (Criteria) this;
        }

        public Criteria andDicCdLike(String value) {
            addCriterion("dic_cd like", value, "dicCd");
            return (Criteria) this;
        }

        public Criteria andDicCdNotLike(String value) {
            addCriterion("dic_cd not like", value, "dicCd");
            return (Criteria) this;
        }

        public Criteria andDicCdIn(List<String> values) {
            addCriterion("dic_cd in", values, "dicCd");
            return (Criteria) this;
        }

        public Criteria andDicCdNotIn(List<String> values) {
            addCriterion("dic_cd not in", values, "dicCd");
            return (Criteria) this;
        }

        public Criteria andDicCdBetween(String value1, String value2) {
            addCriterion("dic_cd between", value1, value2, "dicCd");
            return (Criteria) this;
        }

        public Criteria andDicCdNotBetween(String value1, String value2) {
            addCriterion("dic_cd not between", value1, value2, "dicCd");
            return (Criteria) this;
        }

        public Criteria andDicClsNameIsNull() {
            addCriterion("dic_cls_name is null");
            return (Criteria) this;
        }

        public Criteria andDicClsNameIsNotNull() {
            addCriterion("dic_cls_name is not null");
            return (Criteria) this;
        }

        public Criteria andDicClsNameEqualTo(String value) {
            addCriterion("dic_cls_name =", value, "dicClsName");
            return (Criteria) this;
        }

        public Criteria andDicClsNameNotEqualTo(String value) {
            addCriterion("dic_cls_name <>", value, "dicClsName");
            return (Criteria) this;
        }

        public Criteria andDicClsNameGreaterThan(String value) {
            addCriterion("dic_cls_name >", value, "dicClsName");
            return (Criteria) this;
        }

        public Criteria andDicClsNameGreaterThanOrEqualTo(String value) {
            addCriterion("dic_cls_name >=", value, "dicClsName");
            return (Criteria) this;
        }

        public Criteria andDicClsNameLessThan(String value) {
            addCriterion("dic_cls_name <", value, "dicClsName");
            return (Criteria) this;
        }

        public Criteria andDicClsNameLessThanOrEqualTo(String value) {
            addCriterion("dic_cls_name <=", value, "dicClsName");
            return (Criteria) this;
        }

        public Criteria andDicClsNameLike(String value) {
            addCriterion("dic_cls_name like", value, "dicClsName");
            return (Criteria) this;
        }

        public Criteria andDicClsNameNotLike(String value) {
            addCriterion("dic_cls_name not like", value, "dicClsName");
            return (Criteria) this;
        }

        public Criteria andDicClsNameIn(List<String> values) {
            addCriterion("dic_cls_name in", values, "dicClsName");
            return (Criteria) this;
        }

        public Criteria andDicClsNameNotIn(List<String> values) {
            addCriterion("dic_cls_name not in", values, "dicClsName");
            return (Criteria) this;
        }

        public Criteria andDicClsNameBetween(String value1, String value2) {
            addCriterion("dic_cls_name between", value1, value2, "dicClsName");
            return (Criteria) this;
        }

        public Criteria andDicClsNameNotBetween(String value1, String value2) {
            addCriterion("dic_cls_name not between", value1, value2, "dicClsName");
            return (Criteria) this;
        }

        public Criteria andDicNameIsNull() {
            addCriterion("dic_name is null");
            return (Criteria) this;
        }

        public Criteria andDicNameIsNotNull() {
            addCriterion("dic_name is not null");
            return (Criteria) this;
        }

        public Criteria andDicNameEqualTo(String value) {
            addCriterion("dic_name =", value, "dicName");
            return (Criteria) this;
        }

        public Criteria andDicNameNotEqualTo(String value) {
            addCriterion("dic_name <>", value, "dicName");
            return (Criteria) this;
        }

        public Criteria andDicNameGreaterThan(String value) {
            addCriterion("dic_name >", value, "dicName");
            return (Criteria) this;
        }

        public Criteria andDicNameGreaterThanOrEqualTo(String value) {
            addCriterion("dic_name >=", value, "dicName");
            return (Criteria) this;
        }

        public Criteria andDicNameLessThan(String value) {
            addCriterion("dic_name <", value, "dicName");
            return (Criteria) this;
        }

        public Criteria andDicNameLessThanOrEqualTo(String value) {
            addCriterion("dic_name <=", value, "dicName");
            return (Criteria) this;
        }

        public Criteria andDicNameLike(String value) {
            addCriterion("dic_name like", value, "dicName");
            return (Criteria) this;
        }

        public Criteria andDicNameNotLike(String value) {
            addCriterion("dic_name not like", value, "dicName");
            return (Criteria) this;
        }

        public Criteria andDicNameIn(List<String> values) {
            addCriterion("dic_name in", values, "dicName");
            return (Criteria) this;
        }

        public Criteria andDicNameNotIn(List<String> values) {
            addCriterion("dic_name not in", values, "dicName");
            return (Criteria) this;
        }

        public Criteria andDicNameBetween(String value1, String value2) {
            addCriterion("dic_name between", value1, value2, "dicName");
            return (Criteria) this;
        }

        public Criteria andDicNameNotBetween(String value1, String value2) {
            addCriterion("dic_name not between", value1, value2, "dicName");
            return (Criteria) this;
        }

        public Criteria andText01IsNull() {
            addCriterion("text_01 is null");
            return (Criteria) this;
        }

        public Criteria andText01IsNotNull() {
            addCriterion("text_01 is not null");
            return (Criteria) this;
        }

        public Criteria andText01EqualTo(String value) {
            addCriterion("text_01 =", value, "text01");
            return (Criteria) this;
        }

        public Criteria andText01NotEqualTo(String value) {
            addCriterion("text_01 <>", value, "text01");
            return (Criteria) this;
        }

        public Criteria andText01GreaterThan(String value) {
            addCriterion("text_01 >", value, "text01");
            return (Criteria) this;
        }

        public Criteria andText01GreaterThanOrEqualTo(String value) {
            addCriterion("text_01 >=", value, "text01");
            return (Criteria) this;
        }

        public Criteria andText01LessThan(String value) {
            addCriterion("text_01 <", value, "text01");
            return (Criteria) this;
        }

        public Criteria andText01LessThanOrEqualTo(String value) {
            addCriterion("text_01 <=", value, "text01");
            return (Criteria) this;
        }

        public Criteria andText01Like(String value) {
            addCriterion("text_01 like", value, "text01");
            return (Criteria) this;
        }

        public Criteria andText01NotLike(String value) {
            addCriterion("text_01 not like", value, "text01");
            return (Criteria) this;
        }

        public Criteria andText01In(List<String> values) {
            addCriterion("text_01 in", values, "text01");
            return (Criteria) this;
        }

        public Criteria andText01NotIn(List<String> values) {
            addCriterion("text_01 not in", values, "text01");
            return (Criteria) this;
        }

        public Criteria andText01Between(String value1, String value2) {
            addCriterion("text_01 between", value1, value2, "text01");
            return (Criteria) this;
        }

        public Criteria andText01NotBetween(String value1, String value2) {
            addCriterion("text_01 not between", value1, value2, "text01");
            return (Criteria) this;
        }

        public Criteria andText02IsNull() {
            addCriterion("text_02 is null");
            return (Criteria) this;
        }

        public Criteria andText02IsNotNull() {
            addCriterion("text_02 is not null");
            return (Criteria) this;
        }

        public Criteria andText02EqualTo(String value) {
            addCriterion("text_02 =", value, "text02");
            return (Criteria) this;
        }

        public Criteria andText02NotEqualTo(String value) {
            addCriterion("text_02 <>", value, "text02");
            return (Criteria) this;
        }

        public Criteria andText02GreaterThan(String value) {
            addCriterion("text_02 >", value, "text02");
            return (Criteria) this;
        }

        public Criteria andText02GreaterThanOrEqualTo(String value) {
            addCriterion("text_02 >=", value, "text02");
            return (Criteria) this;
        }

        public Criteria andText02LessThan(String value) {
            addCriterion("text_02 <", value, "text02");
            return (Criteria) this;
        }

        public Criteria andText02LessThanOrEqualTo(String value) {
            addCriterion("text_02 <=", value, "text02");
            return (Criteria) this;
        }

        public Criteria andText02Like(String value) {
            addCriterion("text_02 like", value, "text02");
            return (Criteria) this;
        }

        public Criteria andText02NotLike(String value) {
            addCriterion("text_02 not like", value, "text02");
            return (Criteria) this;
        }

        public Criteria andText02In(List<String> values) {
            addCriterion("text_02 in", values, "text02");
            return (Criteria) this;
        }

        public Criteria andText02NotIn(List<String> values) {
            addCriterion("text_02 not in", values, "text02");
            return (Criteria) this;
        }

        public Criteria andText02Between(String value1, String value2) {
            addCriterion("text_02 between", value1, value2, "text02");
            return (Criteria) this;
        }

        public Criteria andText02NotBetween(String value1, String value2) {
            addCriterion("text_02 not between", value1, value2, "text02");
            return (Criteria) this;
        }

        public Criteria andText03IsNull() {
            addCriterion("text_03 is null");
            return (Criteria) this;
        }

        public Criteria andText03IsNotNull() {
            addCriterion("text_03 is not null");
            return (Criteria) this;
        }

        public Criteria andText03EqualTo(String value) {
            addCriterion("text_03 =", value, "text03");
            return (Criteria) this;
        }

        public Criteria andText03NotEqualTo(String value) {
            addCriterion("text_03 <>", value, "text03");
            return (Criteria) this;
        }

        public Criteria andText03GreaterThan(String value) {
            addCriterion("text_03 >", value, "text03");
            return (Criteria) this;
        }

        public Criteria andText03GreaterThanOrEqualTo(String value) {
            addCriterion("text_03 >=", value, "text03");
            return (Criteria) this;
        }

        public Criteria andText03LessThan(String value) {
            addCriterion("text_03 <", value, "text03");
            return (Criteria) this;
        }

        public Criteria andText03LessThanOrEqualTo(String value) {
            addCriterion("text_03 <=", value, "text03");
            return (Criteria) this;
        }

        public Criteria andText03Like(String value) {
            addCriterion("text_03 like", value, "text03");
            return (Criteria) this;
        }

        public Criteria andText03NotLike(String value) {
            addCriterion("text_03 not like", value, "text03");
            return (Criteria) this;
        }

        public Criteria andText03In(List<String> values) {
            addCriterion("text_03 in", values, "text03");
            return (Criteria) this;
        }

        public Criteria andText03NotIn(List<String> values) {
            addCriterion("text_03 not in", values, "text03");
            return (Criteria) this;
        }

        public Criteria andText03Between(String value1, String value2) {
            addCriterion("text_03 between", value1, value2, "text03");
            return (Criteria) this;
        }

        public Criteria andText03NotBetween(String value1, String value2) {
            addCriterion("text_03 not between", value1, value2, "text03");
            return (Criteria) this;
        }

        public Criteria andText04IsNull() {
            addCriterion("text_04 is null");
            return (Criteria) this;
        }

        public Criteria andText04IsNotNull() {
            addCriterion("text_04 is not null");
            return (Criteria) this;
        }

        public Criteria andText04EqualTo(String value) {
            addCriterion("text_04 =", value, "text04");
            return (Criteria) this;
        }

        public Criteria andText04NotEqualTo(String value) {
            addCriterion("text_04 <>", value, "text04");
            return (Criteria) this;
        }

        public Criteria andText04GreaterThan(String value) {
            addCriterion("text_04 >", value, "text04");
            return (Criteria) this;
        }

        public Criteria andText04GreaterThanOrEqualTo(String value) {
            addCriterion("text_04 >=", value, "text04");
            return (Criteria) this;
        }

        public Criteria andText04LessThan(String value) {
            addCriterion("text_04 <", value, "text04");
            return (Criteria) this;
        }

        public Criteria andText04LessThanOrEqualTo(String value) {
            addCriterion("text_04 <=", value, "text04");
            return (Criteria) this;
        }

        public Criteria andText04Like(String value) {
            addCriterion("text_04 like", value, "text04");
            return (Criteria) this;
        }

        public Criteria andText04NotLike(String value) {
            addCriterion("text_04 not like", value, "text04");
            return (Criteria) this;
        }

        public Criteria andText04In(List<String> values) {
            addCriterion("text_04 in", values, "text04");
            return (Criteria) this;
        }

        public Criteria andText04NotIn(List<String> values) {
            addCriterion("text_04 not in", values, "text04");
            return (Criteria) this;
        }

        public Criteria andText04Between(String value1, String value2) {
            addCriterion("text_04 between", value1, value2, "text04");
            return (Criteria) this;
        }

        public Criteria andText04NotBetween(String value1, String value2) {
            addCriterion("text_04 not between", value1, value2, "text04");
            return (Criteria) this;
        }

        public Criteria andText05IsNull() {
            addCriterion("text_05 is null");
            return (Criteria) this;
        }

        public Criteria andText05IsNotNull() {
            addCriterion("text_05 is not null");
            return (Criteria) this;
        }

        public Criteria andText05EqualTo(String value) {
            addCriterion("text_05 =", value, "text05");
            return (Criteria) this;
        }

        public Criteria andText05NotEqualTo(String value) {
            addCriterion("text_05 <>", value, "text05");
            return (Criteria) this;
        }

        public Criteria andText05GreaterThan(String value) {
            addCriterion("text_05 >", value, "text05");
            return (Criteria) this;
        }

        public Criteria andText05GreaterThanOrEqualTo(String value) {
            addCriterion("text_05 >=", value, "text05");
            return (Criteria) this;
        }

        public Criteria andText05LessThan(String value) {
            addCriterion("text_05 <", value, "text05");
            return (Criteria) this;
        }

        public Criteria andText05LessThanOrEqualTo(String value) {
            addCriterion("text_05 <=", value, "text05");
            return (Criteria) this;
        }

        public Criteria andText05Like(String value) {
            addCriterion("text_05 like", value, "text05");
            return (Criteria) this;
        }

        public Criteria andText05NotLike(String value) {
            addCriterion("text_05 not like", value, "text05");
            return (Criteria) this;
        }

        public Criteria andText05In(List<String> values) {
            addCriterion("text_05 in", values, "text05");
            return (Criteria) this;
        }

        public Criteria andText05NotIn(List<String> values) {
            addCriterion("text_05 not in", values, "text05");
            return (Criteria) this;
        }

        public Criteria andText05Between(String value1, String value2) {
            addCriterion("text_05 between", value1, value2, "text05");
            return (Criteria) this;
        }

        public Criteria andText05NotBetween(String value1, String value2) {
            addCriterion("text_05 not between", value1, value2, "text05");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion("create_time is null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion("create_time is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualTo(Date value) {
            addCriterion("create_time =", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualTo(Date value) {
            addCriterion("create_time <>", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThan(Date value) {
            addCriterion("create_time >", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("create_time >=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThan(Date value) {
            addCriterion("create_time <", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
            addCriterion("create_time <=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIn(List<Date> values) {
            addCriterion("create_time in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotIn(List<Date> values) {
            addCriterion("create_time not in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeBetween(Date value1, Date value2) {
            addCriterion("create_time between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
            addCriterion("create_time not between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNull() {
            addCriterion("update_time is null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNotNull() {
            addCriterion("update_time is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeEqualTo(Date value) {
            addCriterion("update_time =", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotEqualTo(Date value) {
            addCriterion("update_time <>", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThan(Date value) {
            addCriterion("update_time >", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("update_time >=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThan(Date value) {
            addCriterion("update_time <", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
            addCriterion("update_time <=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIn(List<Date> values) {
            addCriterion("update_time in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotIn(List<Date> values) {
            addCriterion("update_time not in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeBetween(Date value1, Date value2) {
            addCriterion("update_time between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
            addCriterion("update_time not between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andStatusIsNull() {
            addCriterion("status is null");
            return (Criteria) this;
        }

        public Criteria andStatusIsNotNull() {
            addCriterion("status is not null");
            return (Criteria) this;
        }

        public Criteria andStatusEqualTo(String value) {
            addCriterion("status =", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotEqualTo(String value) {
            addCriterion("status <>", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThan(String value) {
            addCriterion("status >", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(String value) {
            addCriterion("status >=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThan(String value) {
            addCriterion("status <", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThanOrEqualTo(String value) {
            addCriterion("status <=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLike(String value) {
            addCriterion("status like", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotLike(String value) {
            addCriterion("status not like", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusIn(List<String> values) {
            addCriterion("status in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotIn(List<String> values) {
            addCriterion("status not in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusBetween(String value1, String value2) {
            addCriterion("status between", value1, value2, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotBetween(String value1, String value2) {
            addCriterion("status not between", value1, value2, "status");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}